Design

Participants (n = 27; 14 males, 13 females; mean age (SD) = 24.65 (4.21) years) incidentally encoded 120 vignettes, 15 from each of the different foundations postulated by Moral Foundations Theory (Haidt and Joseph, 2007; Graham et al., 2012) and 15 depicting transgressions of amoral social norms. This took place inside the scanner, where they had 6 seconds to make a moral judgment about each (1-4: not morally wrong-extremely morally wrong).

The memory test took place outside of the scanner. Participants were cued with each vignette presented during study + 8 lures per foundation (including social norms, only 7 lures were presented for Purity). Each vignette had up to 4 words removed, and participants were asked to select which word or words completed the vignette as well as their confidence in their response (not confident-extremely confident; 1-4).

After the memory test, participants completed a host of questionnaires: the Moral Foundations Questionnaire, the Social and Economic Conservatism Scale, the Disgust Scale-Revised, the Interpersonal Reactivity Index, and ranked their emotional responses to the vignettes (5 different emotions/vignette).

In all following plots, binding foundations are shown in red and individualizing foundations are shown in blue (to hint at political ideology). All PLS analyses were performed with 1000 permutations and 250 rounds of bootstrapping.

Modeling moral judgments

Intercept/Comparison Foundation = Social Norms

modelMoral <- lmer(moral_decision ~ category + (1 | subID) + (1|vigfile), data = data_old, control=lmerControl(optCtrl = list(maxeval=5000))) 
tab_model(modelMoral, file='modelMoral.html', show.icc = FALSE, show.r2 = FALSE)
  moral_decision
Predictors Estimates CI p
(Intercept) 1.21 1.00 – 1.41 <0.001
category [Authority] 1.05 0.81 – 1.29 <0.001
category [Loyalty] 0.95 0.71 – 1.20 <0.001
category [Purity] 1.87 1.62 – 2.11 <0.001
category [Care-Emo] 1.49 1.25 – 1.74 <0.001
category [Care-Phys] 1.76 1.51 – 2.00 <0.001
category [Fairness] 1.62 1.38 – 1.86 <0.001
category [Liberty] 1.50 1.26 – 1.74 <0.001
Random Effects
σ2 0.55
τ00 vigfile 0.09
τ00 subID 0.08
N subID 27
N vigfile 120
Observations 3154

contrast estimate SE df t.ratio p.value
LibertyVsSocial 1.4981577 0.1235891 111.8724 12.122083 0.000000
BindingVsSocial 1.2906747 0.1008918 111.7942 12.792665 0.000000
IndividualizingVsSocial 1.6239270 0.1008551 111.6329 16.101579 0.000000
LibertyVsBinding 0.2074830 0.1009817 112.1879 2.054659 0.253410
LibertyVsIndividualizing -0.1257693 0.1009483 112.0403 -1.245878 1.000000
IndividualizingVsBinding 0.1866681 0.0713941 112.1245 2.614613 0.060963

Mean-centered task PLS results

LV1


Temporal brain score mixed model
  score
Predictors Estimates CI p
(Intercept) 0.00 -5.42 – 5.42 1.000
lag [Lag1] 1.19 -5.40 – 7.78 0.723
lag [Lag2] -0.73 -7.32 – 5.86 0.829
lag [Lag3] -2.12 -8.71 – 4.47 0.528
category [Care-Emo] -0.00 -6.59 – 6.59 1.000
category [Care-Phys] -0.00 -6.59 – 6.59 1.000
category [Fairness] -0.00 -6.59 – 6.59 1.000
category [Liberty] -0.00 -6.59 – 6.59 1.000
category [Loyalty] -0.00 -6.59 – 6.59 1.000
category [Purity] -0.00 -6.59 – 6.59 1.000
category [Social Norms] -0.00 -6.59 – 6.59 1.000
lag [Lag1] * category
[Care-Emo]
-2.32 -11.64 – 7.00 0.626
lag [Lag2] * category
[Care-Emo]
-6.61 -15.93 – 2.71 0.164
lag [Lag3] * category
[Care-Emo]
-3.57 -12.89 – 5.75 0.453
lag [Lag1] * category
[Care-Phys]
-2.95 -12.27 – 6.37 0.535
lag [Lag2] * category
[Care-Phys]
-8.17 -17.49 – 1.15 0.086
lag [Lag3] * category
[Care-Phys]
-11.82 -21.14 – -2.50 0.013
lag [Lag1] * category
[Fairness]
0.38 -8.94 – 9.70 0.936
lag [Lag2] * category
[Fairness]
1.02 -8.30 – 10.34 0.830
lag [Lag3] * category
[Fairness]
2.79 -6.53 – 12.11 0.557
lag [Lag1] * category
[Liberty]
-1.74 -11.06 – 7.58 0.715
lag [Lag2] * category
[Liberty]
-4.48 -13.80 – 4.84 0.346
lag [Lag3] * category
[Liberty]
-2.40 -11.72 – 6.92 0.614
lag [Lag1] * category
[Loyalty]
-0.48 -9.80 – 8.84 0.919
lag [Lag2] * category
[Loyalty]
0.27 -9.05 – 9.59 0.955
lag [Lag3] * category
[Loyalty]
2.34 -6.98 – 11.66 0.623
lag [Lag1] * category
[Purity]
-4.01 -13.33 – 5.31 0.399
lag [Lag2] * category
[Purity]
-10.84 -20.16 – -1.52 0.023
lag [Lag3] * category
[Purity]
-17.50 -26.82 – -8.18 <0.001
lag [Lag1] * category
[Social Norms]
-0.93 -10.25 – 8.39 0.844
lag [Lag2] * category
[Social Norms]
-1.94 -11.26 – 7.38 0.683
lag [Lag3] * category
[Social Norms]
-1.43 -10.75 – 7.89 0.764
Random Effects
σ2 152.62
τ00 subID 53.79
N subID 27
Observations 864


Cluster report highlights

click here to see the full reports

Clu. Lag BSR Appro.P Clu_Size.voxels. Level.1 Level.2 Level.3 Level.4 Level.5
59 2 -4.3995 0e+00 19 Right Cerebellum Anterior Lobe Culmen Gray Matter *
60 2 -4.2489 0e+00 39 Left Cerebrum Limbic Lobe Parahippocampal Gyrus Gray Matter Amygdala
61 2 -3.6917 2e-04 45 Left Cerebrum Temporal Lobe Middle Temporal Gyrus Gray Matter Brodmann area 21
63 3 5.7610 0e+00 2173 Right Cerebrum Frontal Lobe Precentral Gyrus Gray Matter Brodmann area 4
64 3 5.7452 0e+00 2181 Right Cerebrum Limbic Lobe Cingulate Gyrus Gray Matter Brodmann area 31
91 3 -7.4806 0e+00 501 Left Cerebrum Frontal Lobe Inferior Frontal Gyrus Gray Matter Brodmann area 46
92 3 -7.3120 0e+00 235 Left Cerebrum Sub-lobar Claustrum Gray Matter *
93 3 -5.4190 0e+00 73 Left Cerebrum Limbic Lobe Parahippocampal Gyrus Gray Matter Amygdala
94 3 -5.2782 0e+00 145 Right Cerebrum Frontal Lobe Inferior Frontal Gyrus Gray Matter Brodmann area 46
95 3 -5.0713 0e+00 22 Left Brainstem Midbrain * Gray Matter Mammillary Body
96 3 -4.9481 0e+00 127 Left Cerebrum Temporal Lobe Middle Temporal Gyrus Gray Matter Brodmann area 21
97 3 -4.7988 0e+00 133 Left Cerebrum Frontal Lobe Inferior Frontal Gyrus Gray Matter Brodmann area 44
98 3 -4.7951 0e+00 35 Left Cerebrum Limbic Lobe Parahippocampal Gyrus Gray Matter Amygdala
99 3 -4.3233 0e+00 59 Left Brainstem Midbrain * Gray Matter Red Nucleus
100 3 -4.2745 0e+00 10 Left Cerebrum Frontal Lobe Inferior Frontal Gyrus Gray Matter Brodmann area 45
101 3 -4.1582 0e+00 19 Right Cerebrum Limbic Lobe Parahippocampal Gyrus Gray Matter Brodmann area 30
102 3 -4.0849 0e+00 16 Right Cerebrum Sub-lobar Thalamus Gray Matter *
103 3 -4.0702 0e+00 23 Right Cerebrum Limbic Lobe Parahippocampal Gyrus Gray Matter Amygdala



LV2


Temporal brain score mixed model
  score
Predictors Estimates CI p
(Intercept) -0.00 -1.98 – 1.98 1.000
lag [Lag1] 0.92 -1.70 – 3.55 0.489
lag [Lag2] -1.41 -4.03 – 1.21 0.292
lag [Lag3] 1.29 -1.33 – 3.91 0.334
category [Care-Emo] 0.00 -2.62 – 2.62 1.000
category [Care-Phys] 0.00 -2.62 – 2.62 1.000
category [Fairness] 0.00 -2.62 – 2.62 1.000
category [Liberty] 0.00 -2.62 – 2.62 1.000
category [Loyalty] 0.00 -2.62 – 2.62 1.000
category [Purity] 0.00 -2.62 – 2.62 1.000
category [Social Norms] 0.00 -2.62 – 2.62 1.000
lag [Lag1] * category
[Care-Emo]
0.10 -3.61 – 3.80 0.959
lag [Lag2] * category
[Care-Emo]
1.30 -2.40 – 5.01 0.490
lag [Lag3] * category
[Care-Emo]
1.16 -2.55 – 4.87 0.539
lag [Lag1] * category
[Care-Phys]
-1.32 -5.03 – 2.38 0.484
lag [Lag2] * category
[Care-Phys]
-0.73 -4.44 – 2.97 0.698
lag [Lag3] * category
[Care-Phys]
-1.82 -5.52 – 1.89 0.337
lag [Lag1] * category
[Fairness]
0.59 -3.11 – 4.30 0.754
lag [Lag2] * category
[Fairness]
2.06 -1.65 – 5.76 0.277
lag [Lag3] * category
[Fairness]
6.60 2.89 – 10.31 <0.001
lag [Lag1] * category
[Liberty]
1.18 -2.52 – 4.89 0.531
lag [Lag2] * category
[Liberty]
2.11 -1.59 – 5.82 0.264
lag [Lag3] * category
[Liberty]
3.90 0.19 – 7.60 0.039
lag [Lag1] * category
[Loyalty]
0.61 -3.10 – 4.31 0.749
lag [Lag2] * category
[Loyalty]
1.81 -1.90 – 5.52 0.339
lag [Lag3] * category
[Loyalty]
6.19 2.49 – 9.90 0.001
lag [Lag1] * category
[Purity]
0.67 -3.03 – 4.38 0.722
lag [Lag2] * category
[Purity]
1.41 -2.29 – 5.12 0.455
lag [Lag3] * category
[Purity]
4.51 0.80 – 8.22 0.017
lag [Lag1] * category
[Social Norms]
-4.18 -7.89 – -0.47 0.027
lag [Lag2] * category
[Social Norms]
-6.42 -10.13 – -2.72 0.001
lag [Lag3] * category
[Social Norms]
-13.57 -17.28 – -9.86 <0.001
Random Effects
σ2 24.15
τ00 subID 3.43
N subID 27
Observations 864


click here for LV2 cluster report (all of the cluster reports are on different sheets of the same google doc. I linked the specific sheets here for convenience.)

I only highlighted negative BSRs. You can view the full cluster report to see positive ones.
Clu. Lag BSR Appro.P Clu_Size.voxels. Level.1 Level.2 Level.3 Level.4 Level.5
21 2 5.5611 0e+00 132 Left Cerebrum Limbic Lobe Cingulate Gyrus Gray Matter Brodmann area 23
22 2 5.2217 0e+00 37 Right Cerebrum Limbic Lobe Cingulate Gyrus Gray Matter Brodmann area 31
41 2 4.2821 0e+00 67 Left Cerebrum Occipital Lobe Cuneus Gray Matter Brodmann area 7
42 2 4.2141 0e+00 30 Right Cerebrum Frontal Lobe Postcentral Gyrus Gray Matter Brodmann area 4
43 2 4.1413 0e+00 19 Right Cerebrum Frontal Lobe Middle Frontal Gyrus Gray Matter Brodmann area 6
44 2 4.1203 0e+00 22 Right Cerebrum Parietal Lobe Precuneus Gray Matter Brodmann area 7
45 2 4.0541 1e-04 26 Right Cerebrum Frontal Lobe Paracentral Lobule Gray Matter Brodmann area 5
46 2 4.0143 1e-04 54 Left Cerebrum Occipital Lobe Lingual Gyrus Gray Matter Brodmann area 18
47 2 3.9933 1e-04 21 Left Cerebrum Sub-lobar Lentiform Nucleus Gray Matter Putamen
48 2 3.9632 1e-04 30 Left Cerebrum Temporal Lobe Superior Temporal Gyrus Gray Matter *
49 2 3.9361 1e-04 18 Right Cerebrum Frontal Lobe Medial Frontal Gyrus Gray Matter Brodmann area 6
50 2 3.9286 1e-04 19 Right Cerebrum Frontal Lobe Superior Frontal Gyrus Gray Matter Brodmann area 8
51 2 3.9003 1e-04 20 Left Cerebrum Parietal Lobe Inferior Parietal Lobule Gray Matter Brodmann area 40
54 2 3.8036 1e-04 17 Right Cerebrum Sub-lobar Caudate Gray Matter Caudate Body
58 2 3.5673 4e-04 25 Left Cerebrum Parietal Lobe Precuneus Gray Matter Brodmann area 31
61 2 -3.6917 2e-04 45 Left Cerebrum Temporal Lobe Middle Temporal Gyrus Gray Matter Brodmann area 21

Model comparisons


First, I wanted to see how the pattern identified by LV1 compared to the original superordinate categorization with respect to explaining variance in moral judgments. There is not a good way to statistically compare the 3 different models (one with just a global intercept and random effects for subjects and vignettes), so this is a qualitative comparison using standard metrics for evaluating mixed model performance.

superordinateNull <- lmer(moral_decision ~ 1 + (1|subID) + (1|vigfile), data = data_old, control=lmerControl(optCtrl = list(maxeval=5000))) 
superordinateOG <- lmer(moral_decision ~ superordinate + (1|subID) + (1|vigfile), data = data_old, control=lmerControl(optCtrl = list(maxeval=5000))) 
superordinateNew <- lmer(moral_decision ~ superordinate_new + (1|subID) + (1|vigfile), data = data_old, control=lmerControl(optCtrl = list(maxeval=5000))) 
kable(compare_performance(superordinateNull, superordinateOG, superordinateNew, bayesfactor = FALSE))
Model Type AIC BIC R2_conditional R2_marginal ICC RMSE
superordinateNull lmerModLmerTest 7506.270 7530.496 0.4751946 0.0000000 0.4751946 0.7239717
superordinateOG lmerModLmerTest 7412.639 7455.034 0.4774696 0.2453677 0.3075696 0.7249011
superordinateNew lmerModLmerTest 7385.091 7427.486 0.4766564 0.2805809 0.2725469 0.7253349


Interpretation: the neural superordinate categorization outperforms the original categorization on nearly every metric. Lower AIC & BIC = contains more information / number of parameters. R2_conditional = proportion of data explained by fixed & random effects, R2_marginal = proportion of data explained only by fixed effects (aka the one that matters here – New categories are better). ICC = amount of variance explained by random effects, lower = better fixed effects. RMSE = squared error from individual data points and model estimates.


Next, because LV1 is largely associated with emotional empathy areas, I wanted to see whether including information about participants’ emotions & trait-empathy levels improved our ability to model their moral judgments. I had to drop one participant for this analysis, so the N=26 (but the model n=2870). We asked participants to report (1-7) the following emotional reactions to each vignette: anger, fear, sadness, disgust, contempt, amusement. For empathy, I am using 2 subscores from the Interpersonal Reactivity Index: personal distress (‘self-oriented’ feelings of anxiety or unease in tense interpersonal situations) and empathic concern (‘other-oriented’ feelings of concern). I built several models encompassing a large portion of the hypothesis (as shown below). Issues with rank deficiency prohibited me from building the highest-complexity models.


modelNull <- lmer(moral_decision ~ 1 + (1|subID) + (1|vigfile), data = data_old, control=lmerControl(optCtrl = list(maxeval=5000))) 

modelMoral <- lmer(moral_decision ~ category + (1|subID) + (1|vigfile), data = em_compare)

empathyModel <- lmer(moral_decision ~ PersonalDistressScore * EmpathicConcernScore + 
                       (1|subID) + (1|vigfile), data = em_compare)

emotionModel <- lmer(moral_decision ~ angry + sad + disgusted + afraid + contemptuous + amused + 
                       (1|subID) + (1|vigfile), data = em_compare)

empathy_category <- lmer(moral_decision ~ category * PersonalDistressScore * EmpathicConcernScore +
                           (1|subID) + (1|vigfile), 
                         data = em_compare)

emotion_category <- lmer(moral_decision ~ category * angry + category * sad + category * disgusted + category * afraid + category * contemptuous + category * amused + 
                           (1|subID) + (1|vigfile),data = em_compare)

em_explosion <- lmer(moral_decision ~ angry * sad * disgusted * afraid * contemptuous * amused * 
                       PersonalDistressScore * EmpathicConcernScore + 
                        (1|subID) + (1|vigfile), data=em_compare)

em_category <- lmer(moral_decision ~ category * angry + category * amused + category * sad + category * afraid + category * contemptuous + category * disgusted + category * amused + 
                    category * PersonalDistressScore + category * EmpathicConcernScore + 
                    angry * amused + angry * sad + angry * afraid + angry * contemptuous + angry * disgusted + 
                    amused * sad + amused * afraid + amused * contemptuous + amused * disgusted + 
                    sad * afraid + sad * contemptuous + sad * disgusted + 
                    afraid * contemptuous + afraid * disgusted + 
                    disgusted * contemptuous + (1|subID) + (1|vigfile), data = em_compare)

kable(compare_performance(modelNull, empathyModel, emotionModel, empathy_category, emotion_category, em_explosion, em_category, modelMoral, bayesfactor = FALSE, rank = TRUE))
Model Type AIC BIC R2_conditional R2_marginal ICC RMSE Performance_Score
em_category lmerModLmerTest 6680.485 7217.071 0.5528398 0.4433317 0.1967206 0.6642465 0.7437666
emotion_category lmerModLmerTest 6554.964 6906.726 0.5366948 0.4322707 0.1839329 0.6755215 0.7199487
empathy_category lmerModLmerTest 6775.887 6984.559 0.5045363 0.3371341 0.2525431 0.7117298 0.5696297
emotionModel lmerModLmerTest 6582.020 6641.641 0.4497742 0.1447356 0.3566600 0.6917725 0.5516829
empathyModel lmerModLmerTest 6898.636 6940.370 0.4808784 0.0089937 0.4761673 0.7260540 0.4953044
modelMoral lmerModLmerTest 6751.614 6817.197 0.4783960 0.3107855 0.2431906 0.7282512 0.4941920
em_explosion lmerModLmerTest 7844.884 9389.059 0.5110706 0.2468552 0.3508162 0.6400411 0.4537684
modelNull lmerModLmerTest 7506.270 7530.496 0.4751946 0.0000000 0.4751946 0.7239717 0.3718023


Performance score is the average of normalized values of each of these metrics, and is intended for quick, heuristic use, so we shouldn’t consider it the ultimate arbiter of model performance. However, all things considered, it does seem that ‘emotion_category’ (the model which had as fixed effects interactions between all of the emotions and category) is the best model for predicting moral judgments. It’s basically tied with em_category on R2, but has considerably better AIC & BIC. We take this to suggest that, although moral foundations do a fine job explaining variance in moral judgments, including emotional reactions to moral transgressions paints a fuller picture (even when the stimuli are specifically designed to uniquely tap into each foundation!). See below a summary of the model & trends of each of the emotions.


Note: for this model, the coefficients are sum-coded/zero-centered. So estimates reflect deviations from the grand mean of 0. Estimates for simple main effects describe their effect on all levels of the DV, rather than their relationship to a particular intercept. While this aids interpretation, it does come at a cost. We do not see estimates for the final category in the model printout. We would have to add up the estimates of every level of category & reverse the sign to get that estimate. But we do see its relationship to emotion in the model trend printouts.


  moral_decision
Predictors Estimates CI p
Intercept 2.41 2.30 – 2.53 <0.001
Social Norms -0.99 -1.22 – -0.77 <0.001
Authority -0.08 -0.22 – 0.06 0.256
Loyalty -0.09 -0.22 – 0.05 0.217
Purity -0.01 -0.18 – 0.16 0.941
Care-Emo 0.19 0.06 – 0.33 0.006
Care-Phys 0.51 0.38 – 0.64 <0.001
Fairness 0.35 0.21 – 0.49 <0.001
anger 0.12 0.06 – 0.17 <0.001
sadness 0.05 0.01 – 0.09 0.022
disgust 0.16 0.11 – 0.21 <0.001
fear -0.00 -0.05 – 0.04 0.839
contempt 0.08 0.03 – 0.13 0.001
amusement -0.11 -0.15 – -0.08 <0.001
Social Norms*anger -0.12 -0.38 – 0.14 0.369
Authority*anger 0.12 -0.00 – 0.24 0.054
Loyalty*anger -0.04 -0.17 – 0.09 0.521
Purity*anger -0.06 -0.17 – 0.04 0.226
Care-Emo*anger 0.05 -0.07 – 0.16 0.406
Care-Phys*anger -0.09 -0.19 – 0.01 0.091
Fairness*anger 0.02 -0.08 – 0.12 0.652
Social Norms*sadness 0.02 -0.11 – 0.15 0.799
Authority*sadness 0.03 -0.09 – 0.15 0.640
Loyalty*sadness -0.14 -0.24 – -0.04 0.005
Purity*sadness 0.00 -0.08 – 0.08 0.975
Care-Emo*sadness -0.06 -0.14 – 0.02 0.169
Care-Phys*sadness 0.03 -0.05 – 0.12 0.441
Fairness*sadness 0.13 0.02 – 0.24 0.026
Social Norms*disgust -0.12 -0.28 – 0.04 0.144
Authority*disgust -0.07 -0.20 – 0.06 0.278
Loyalty*disgust 0.09 -0.04 – 0.22 0.157
Purity*disgust 0.41 0.30 – 0.51 <0.001
Care-Emo*disgust 0.04 -0.07 – 0.14 0.475
Care-Phys*disgust -0.09 -0.19 – 0.00 0.062
Fairness*disgust -0.13 -0.22 – -0.03 0.009
Social Norms*fear -0.03 -0.18 – 0.12 0.702
Authority*fear -0.16 -0.28 – -0.03 0.013
Loyalty*fear 0.07 -0.05 – 0.19 0.245
Purity*fear 0.03 -0.05 – 0.10 0.445
Care-Emo*fear -0.05 -0.16 – 0.07 0.417
Care-Phys*fear -0.02 -0.09 – 0.06 0.672
Fairness*fear 0.07 -0.05 – 0.20 0.258
Social Norms*contempt 0.07 -0.15 – 0.29 0.533
Authority*contempt -0.03 -0.13 – 0.08 0.613
Loyalty*contempt 0.07 -0.03 – 0.17 0.163
Purity*contempt -0.03 -0.11 – 0.06 0.514
Care-Emo*contempt 0.00 -0.09 – 0.09 0.957
Care-Phys*contempt -0.12 -0.20 – -0.03 0.009
Fairness*contempt -0.03 -0.11 – 0.06 0.540
Social Norms*amusement 0.02 -0.05 – 0.09 0.551
Authority*amusement 0.06 -0.03 – 0.15 0.197
Loyalty*amusement 0.06 -0.01 – 0.14 0.111
Purity*amusement -0.02 -0.10 – 0.05 0.533
Care-Emo*amusement -0.04 -0.14 – 0.05 0.390
Care-Phys*amusement 0.13 0.05 – 0.21 0.001
Fairness*amusement -0.06 -0.17 – 0.05 0.257
Random Effects
σ2 0.48
τ00 vigfile 0.05
τ00 subID 0.06
N subID 26
N vigfile 120
Observations 2870
Category trends for anger
category angry.trend SE df lower.CL upper.CL
Social Norms -0.0034407 0.1500763 2785.856 -0.2977128 0.2908314
Authority 0.2341609 0.0641111 2728.249 0.1084497 0.3598721
Loyalty 0.0736200 0.0696504 2781.137 -0.0629518 0.2101918
Purity 0.0525689 0.0517380 2799.021 -0.0488796 0.1540173
Care-Emo 0.1636908 0.0595915 2751.362 0.0468422 0.2805395
Care-Phys 0.0268789 0.0525024 2753.298 -0.0760691 0.1298269
Fairness 0.1388512 0.0504585 2799.623 0.0399115 0.2377909
Liberty 0.2400427 0.0570749 2793.702 0.1281293 0.3519560
Category trends for sadness
category sad.trend SE df lower.CL upper.CL
Social Norms 0.0658346 0.0742735 2804.497 -0.0798015 0.2114708
Authority 0.0771864 0.0671872 2778.486 -0.0545554 0.2089283
Loyalty -0.0956481 0.0551674 2787.357 -0.2038212 0.0125250
Purity 0.0500664 0.0428555 2754.796 -0.0339658 0.1340986
Care-Emo -0.0081407 0.0429548 2751.688 -0.0923676 0.0760862
Care-Phys 0.0836920 0.0479696 2755.940 -0.0103679 0.1777519
Fairness 0.1791947 0.0641905 2795.239 0.0533291 0.3050604
Liberty 0.0378270 0.0470167 2742.305 -0.0543647 0.1300188
Category trends for disgust
category disgusted.trend SE df lower.CL upper.CL
Social Norms 0.0374091 0.0923883 2417.403 -0.1437593 0.2185775
Authority 0.0865303 0.0733944 2744.206 -0.0573836 0.2304441
Loyalty 0.2516400 0.0718297 2752.409 0.1107945 0.3924855
Purity 0.5671336 0.0554139 2739.196 0.4584764 0.6757907
Care-Emo 0.1971892 0.0568280 2743.410 0.0857593 0.3086192
Care-Phys 0.0649418 0.0529629 2800.428 -0.0389085 0.1687921
Fairness 0.0307552 0.0514732 2802.189 -0.0701740 0.1316843
Liberty 0.0359953 0.0567187 2791.570 -0.0752196 0.1472102
Category trends for fear
category afraid.trend SE df lower.CL upper.CL
Social Norms -0.0342723 0.0853140 2783.378 -0.2015575 0.1330129
Authority -0.1623034 0.0705905 2746.043 -0.3007192 -0.0238875
Loyalty 0.0644893 0.0657475 2730.108 -0.0644306 0.1934091
Purity 0.0240313 0.0363862 2783.379 -0.0473153 0.0953779
Care-Emo -0.0528100 0.0649897 2771.333 -0.1802431 0.0746231
Care-Phys -0.0201008 0.0339091 2767.741 -0.0865905 0.0463889
Fairness 0.0672904 0.0704374 2757.426 -0.0708250 0.2054057
Liberty 0.0746346 0.0491930 2774.817 -0.0218239 0.1710931
Category trends for contempt
category contemptuous.trend SE df lower.CL upper.CL
Social Norms 0.1510839 0.1285451 2746.057 -0.1009710 0.4031388
Authority 0.0535323 0.0570188 2741.616 -0.0582719 0.1653365
Loyalty 0.1529521 0.0552647 2756.960 0.0445876 0.2613165
Purity 0.0525284 0.0433961 2736.804 -0.0325640 0.1376208
Care-Emo 0.0829327 0.0487311 2749.401 -0.0126206 0.1784859
Care-Phys -0.0347804 0.0449970 2727.369 -0.1230120 0.0534512
Fairness 0.0547743 0.0420584 2735.888 -0.0276951 0.1372438
Liberty 0.1303469 0.0459903 2731.799 0.0401676 0.2205263
Category trends for amusement
category amused.trend SE df lower.CL upper.CL
Social Norms -0.0923785 0.0338854 2805.132 -0.1588213 -0.0259356
Authority -0.0547831 0.0486657 2764.465 -0.1502079 0.0406417
Loyalty -0.0503723 0.0413281 2761.505 -0.1314094 0.0306648
Purity -0.1365937 0.0408209 2790.150 -0.2166359 -0.0565516
Care-Emo -0.1550867 0.0542164 2805.330 -0.2613948 -0.0487786
Care-Phys 0.0161095 0.0422731 2797.378 -0.0667801 0.0989991
Fairness -0.1760015 0.0623840 2801.969 -0.2983247 -0.0536782
Liberty -0.2515830 0.0554417 2807.077 -0.3602936 -0.1428725
***
### Non-rotated task PLS


link to cluster report. not including highlights here because I’m not sure this was even a legit analysis.


When I ran this analysis, I got this warning:

I used the coefficients (1/3,1/3,/1/3;-1/3,-1/3,-1/3 for the first (in the proper order, ofc) and 0.75,0.75,0.75,0.75,-1,-1,-1 for the second). Here are the values for lvintercorrs:


Does this mean that LVs 1 and 2 explain some of the same variance?


And for LV3, how is it possible that the mean-centered analysis would find an LV that separates social norms from the other foundations, but that an NR does not? Could it be because I didn’t include Fairness (the only marginally significant foundation in LV2) in the contrast?



*** ### Moral judgment behavioral PLS

link to cluster report. not including highlights because I’m still not totally clear on how to interpret.


And now for memory

Mixed model analyzing memory accuracy

# generalized linear mixed effect model because outcome is binary
modelMemory <- glmer(correct ~ category * old + (1 | subID),
                 data=data, family=binomial(link = 'logit'), control=glmerControl(optCtrl=list(maxfun=50000)))
tab_model(modelMemory, file='modelMemory.html')
  correct
Predictors Odds Ratios CI p
(Intercept) 4.60 3.31 – 6.39 <0.001
category [Authority] 0.65 0.46 – 0.91 0.013
category [Loyalty] 0.77 0.55 – 1.09 0.136
category [Purity] 1.26 0.87 – 1.82 0.222
category [Care-Emo] 1.02 0.71 – 1.45 0.928
category [Care-Phys] 0.81 0.57 – 1.15 0.236
category [Fairness] 0.91 0.64 – 1.29 0.589
category [Liberty] 0.81 0.57 – 1.15 0.240
old [0] 2.15 1.29 – 3.59 0.003
category [Authority] *
old [0]
0.57 0.30 – 1.10 0.092
category [Loyalty] * old
[0]
0.75 0.38 – 1.47 0.402
category [Purity] * old
[0]
5.71 1.59 – 20.50 0.007
category [Care-Emo] * old
[0]
1.22 0.58 – 2.59 0.596
category [Care-Phys] *
old [0]
1.22 0.60 – 2.51 0.584
category [Fairness] * old
[0]
1.69 0.78 – 3.66 0.185
category [Liberty] * old
[0]
0.89 0.45 – 1.78 0.747
Random Effects
σ2 3.29
τ00 subID 0.31
ICC 0.09
N subID 27
Observations 4937
Marginal R2 / Conditional R2 0.110 / 0.187


Traditional superordinate contrast
old_pairwise category_custom estimate SE df z.ratio p.value
1 - 0 LibertyVsSocial 0.1134671 0.3513773 Inf 0.322921 0.7467551
1 - 0 BindingVsSocial -0.3003486 0.3429769 Inf -0.875711 0.3811872
1 - 0 IndividualizingVsSocial -0.3089599 0.3061219 Inf -1.009271 0.3128448
1 - 0 LibertyVsBinding 0.4138158 0.3243490 Inf 1.275835 0.2020139
1 - 0 LibertyVsIndividualizing 0.4224270 0.2851960 Inf 1.481181 0.1385582
1 - 0 IndividualizingVsBinding 0.3492292 0.2776560 Inf 1.257776 0.2084727
New superordinate contrast
old_pairwise category_custom estimate SE df z.ratio p.value
1 - 0 FairnessVsSocial -0.5237155 0.3947391 Inf -1.3267384 0.1845952
1 - 0 EmotionVsSocial -0.7154039 0.3516105 Inf -2.0346490 0.0418862
1 - 0 NotEmotionVsSocial 0.3184896 0.2900359 Inf 1.0981040 0.2721591
1 - 0 EmotionVsNotEmotion -1.0338935 0.2680813 Inf -3.8566421 0.0001150
1 - 0 EmotionVsFairness -0.1916884 0.3788561 Inf -0.5059663 0.6128803
1 - 0 NotEmotionVsFairness 0.8422051 0.3226345 Inf 2.6103998 0.0090436


To more fully interrogate the utility of the new superordinate categories, we decided to do model comparisons for memory and confidence as well. I suppose we could do the same for empathy and emotion. But it’s beginning to feel like a lot.. like maybe it should be two papers instead of 1. We can talk about that.

modelSupMemory <- glmer(correct ~ superordinate * old + (1 | subID),
                 data=data, family=binomial(link = 'logit'), control=glmerControl(optCtrl=list(maxfun=50000)))
modelSupMemoryNew <- glmer(correct ~ superordinate_new * old + (1 | subID),
                 data=data, family=binomial(link = 'logit'), control=glmerControl(optCtrl=list(maxfun=50000)))
modelMemoryNull <- glmer(correct ~ old + (1 | subID),
                 data=data, family=binomial(link = 'logit'), control=glmerControl(optCtrl=list(maxfun=50000)))
kable(compare_performance(modelMemoryNull, modelSupMemory, modelSupMemoryNew, modelMemory, bayesfactor = FALSE, rank = TRUE))
Model Type AIC BIC R2_conditional R2_marginal ICC RMSE LOGLOSS SCORE_LOG Performance_Score
modelMemory glmerMod 4378.717 4489.293 0.1873817 0.1100216 0.0869236 0.9292995 0.4317988 -Inf 0.7162130
modelSupMemoryNew glmerMod 4393.348 4451.889 0.1482016 0.0678775 0.0861733 0.9326459 0.4349142 -Inf 0.6030948
modelMemoryNull glmerMod 4432.353 4451.867 0.1177169 0.0358472 0.0849137 0.9381894 0.4400997 -Inf 0.2857143
modelSupMemory glmerMod 4431.264 4489.805 0.1261357 0.0447521 0.0851963 0.9367710 0.4387699 -Inf 0.2001712


Interpretation: using actual categories is better for predicting memory than either of the superordinate categorizations, but the neurally derived superordinate categories are indeed better at predicting successful memory than the traditional superordinate categories. See below summaries of both of the superordinate models. (traditional superordinate on the left, new superordinate on the right. still thinking about what I could call the ‘not emotion’ category…)

  correct correct
Predictors Odds Ratios CI p Odds Ratios CI p
(Intercept) 4.59 3.31 – 6.37 <0.001 4.59 3.31 – 6.38 <0.001
superordinate [Liberty] 0.81 0.58 – 1.15 0.240
superordinate
[Individualizing]
0.91 0.68 – 1.21 0.503
superordinate [Binding] 0.84 0.63 – 1.12 0.236
old [0] 2.15 1.29 – 3.59 0.003 2.15 1.29 – 3.59 0.003
superordinate [Liberty] *
old [0]
0.89 0.45 – 1.78 0.746
superordinate
[Individualizing] * old
[0]
1.35 0.74 – 2.45 0.328
superordinate [Binding] *
old [0]
0.82 0.46 – 1.46 0.499
superordinate_new
[Fairness]
0.91 0.64 – 1.29 0.590
superordinate_new
[Emotion]
1.00 0.75 – 1.34 0.980
superordinate_new [Not
Emotion]
0.74 0.56 – 0.98 0.038
superordinate_new
[Fairness] * old [0]
1.69 0.78 – 3.66 0.185
superordinate_new
[Emotion] * old [0]
1.52 0.82 – 2.82 0.180
superordinate_new [Not
Emotion] * old [0]
0.71 0.40 – 1.26 0.240
Random Effects
σ2 3.29 3.29
τ00 0.31 subID 0.31 subID
ICC 0.09 0.09
N 27 subID 27 subID
Observations 4937 4937
Marginal R2 / Conditional R2 0.045 / 0.126 0.068 / 0.148

Subsequent memory behavioral PLS

link to cluster reports ***

And finally, confidence

  confresp
Predictors Estimates CI p
(Intercept) 2.71 2.58 – 2.84 <0.001
category [Authority] -0.16 -0.31 – -0.02 0.027
category [Loyalty] -0.26 -0.40 – -0.12 <0.001
category [Purity] 0.05 -0.09 – 0.20 0.451
category [Care-Emo] -0.05 -0.19 – 0.10 0.522
category [Care-Phys] -0.11 -0.26 – 0.03 0.118
category [Fairness] -0.05 -0.19 – 0.10 0.525
category [Liberty] 0.03 -0.11 – 0.18 0.648
old [0] -0.32 -0.49 – -0.16 <0.001
correct [0] -0.57 -0.72 – -0.41 <0.001
category [Authority] *
old [0]
-0.11 -0.35 – 0.13 0.360
category [Loyalty] * old
[0]
0.17 -0.07 – 0.41 0.170
category [Purity] * old
[0]
0.13 -0.11 – 0.37 0.283
category [Care-Emo] * old
[0]
-0.13 -0.37 – 0.11 0.284
category [Care-Phys] *
old [0]
-0.01 -0.24 – 0.23 0.947
category [Fairness] * old
[0]
0.02 -0.22 – 0.25 0.883
category [Liberty] * old
[0]
-0.05 -0.29 – 0.18 0.658
category [Authority] *
correct [0]
0.01 -0.20 – 0.22 0.925
category [Loyalty] *
correct [0]
0.04 -0.17 – 0.24 0.734
category [Purity] *
correct [0]
0.10 -0.13 – 0.34 0.396
category [Care-Emo] *
correct [0]
-0.15 -0.37 – 0.07 0.171
category [Care-Phys] *
correct [0]
0.02 -0.19 – 0.23 0.876
category [Fairness] *
correct [0]
0.00 -0.21 – 0.22 0.994
category [Liberty] *
correct [0]
-0.07 -0.29 – 0.14 0.505
old [0] * correct [0] -0.27 -0.58 – 0.04 0.087
(category [Authority]
old [0])
correct [0]
0.66 0.26 – 1.06 0.001
(category [Loyalty] * old
[0]) * correct [0]
0.32 -0.11 – 0.76 0.141
(category [Purity] * old
[0]) * correct [0]
-0.64 -1.41 – 0.13 0.104
(category [Care-Emo]
old [0])
correct [0]
0.31 -0.14 – 0.77 0.177
(category [Care-Phys]
old [0])
correct [0]
0.02 -0.41 – 0.45 0.928
(category [Fairness]
old [0])
correct [0]
0.15 -0.32 – 0.62 0.534
(category [Liberty] * old
[0]) * correct [0]
0.26 -0.16 – 0.68 0.233
Random Effects
σ2 0.36
τ00 vigfile 0.02
τ00 subID 0.05
N subID 27
N vigfile 183
Observations 4937


I think I’m going to end up using the plot with just the model estimates and no raw data, but I thought it was pretty so I’m including it here :)

Confidence superordinate model comparisons

modelConfidenceNull <- lmer(confresp ~  old * correct + (1 | subID) + (1|vigfile), data=data,
                        control=lmerControl(optCtrl = list(maxeval=5000)))

modelConfidenceSup <- lmer(confresp ~ superordinate * old * correct + (1 | subID) + (1|vigfile), data=data,
                        control=lmerControl(optCtrl = list(maxeval=5000)))

modelConfidenceSupNew <- lmer(confresp ~ superordinate_new * old * correct + (1 | subID) + (1|vigfile), data=data,
                        control=lmerControl(optCtrl = list(maxeval=5000)))

kable(compare_performance(modelConfidenceNull, modelConfidenceSup, modelConfidenceSupNew, modelConfidence, bayesfactor = FALSE, rank = TRUE))
Model Type AIC BIC R2_conditional R2_marginal ICC RMSE Performance_Score
modelConfidenceSup lmerModLmerTest 9295.112 9418.698 0.2972411 0.1318083 0.1905488 0.5863438 0.5227183
modelConfidenceSupNew lmerModLmerTest 9294.229 9417.814 0.2979656 0.1335965 0.1897143 0.5865673 0.5121144
modelConfidenceNull lmerModLmerTest 9255.599 9301.130 0.2943196 0.1273252 0.1913593 0.5874917 0.5000000
modelConfidence lmerModLmerTest 9312.866 9540.524 0.3035070 0.1560666 0.1747061 0.5862049 0.5000000


This time, old and new superordinate models are basically tied. I’m having trouble getting the confidence contrasts to work, so I’m going to forego them here for the sake of time.


Last but not least, empathy behavioral PLS

At this point, this kind of feels like a wash. But I did it, so I figured I would include it here. Also, I’m not sure whether it makes sense to use a trait measure for behavioral PLS. Maybe we’ll have some time to talk about it.
link to cluster report